![]() |
ALMaSS
1.0
The Animal, Landscape and Man Simulation System
|
A class to describe the Greylag base. More...
#include <GooseGreylag_All.h>
Public Member Functions | |
Goose_Greylag_Base (Landscape *p_L, Goose_Population_Manager *p_NPM, double a_weight, bool a_sex, APoint a_roost) | |
Goose_Greylag_Base constructor. More... | |
void | Init (Goose_Population_Manager *p_NPM, double a_weight, bool a_sex, APoint a_roost) |
Intitialise object. More... | |
void | ReInit (Landscape *p_L, Goose_Population_Manager *p_NPM, double a_weight, bool a_sex, APoint a_roost) |
ReInit for object pool. More... | |
virtual | ~Goose_Greylag_Base () |
Goose_Greylag_Base destructor. More... | |
![]() | |
Goose_Base (Landscape *p_L, Goose_Population_Manager *p_NPM, double a_weight, bool a_sex, APoint a_roost) | |
Goose_Base constructor. More... | |
void | Init (Goose_Population_Manager *p_NPM, double a_weight, bool a_sex, APoint a_roost) |
Intitialise object. More... | |
void | ReInit (Landscape *p_L, Goose_Population_Manager *p_NPM, double a_weight, bool a_sex, APoint a_roost) |
ReInit for object pool. More... | |
virtual | ~Goose_Base () |
Goose_Base destructor. More... | |
void | st_Dying (void) |
Behavioural state dying. More... | |
void | Explore () |
Behavioural exploration of the area to find forage. More... | |
TTypeOfGoose_BaseState | st_Forage () |
Behavioural forage. More... | |
APoint | GetRoost () |
Supply roost coords. More... | |
TMaxIntakeSource | GetMaxIntakeSource () |
Supply the current max intake source. More... | |
TTypeOfGoose_BaseState | st_Roost () |
Roosting until next forage or next morning. More... | |
void | EvaluateForageToHopLoc (APoint a_HopLoc) |
Do a forage evaluation from current location to a_HopLoc. More... | |
virtual void | StartDay (void) |
Do any 'housekeeping' associated with the start of day. More... | |
virtual void | BeginStep (void) |
The BeginStep is the first 'part' of the timestep that an animal can behave in. It is called once per timestep (10 minutes). More... | |
virtual void | Step (void) |
The Step is the second 'part' of the timestep that an animal can behave in. It is called continuously until all animals report that they are 'DONE'. More... | |
virtual void | EndStep (void) |
The EndStep is the third 'part' of the timestep that an animal can behave in. It is called once per timestep. More... | |
virtual void | On_Emigrate () |
Cause the bird to immediately transition to Emigrate. More... | |
double | GetBodyCondition () |
Returns the current body condition. More... | |
void | SetBodyCondition (double a_condition, unsigned a_index) |
Sets the current body condition. More... | |
void | AddBodyCondition (double a_condition) |
Alters body conditon by addition of a double value. More... | |
void | SubtractBodyCondition (double a_condition) |
Alters body conditon by subtraction of a double value. More... | |
int | GetGroupsize () |
Returns the groupsize. More... | |
double | ScaleForageToGroupsize (double a_forage) |
Scales forage to groupsize. More... | |
int | GetForageLocIndex () |
Gets for the forage location index. More... | |
GooseSpecies | GetSpecies () |
Returns the species. More... | |
bool | GetSex () |
Returns the sex. More... | |
int | GetMaxAppetiteHitTime () |
Returns m_DailyMaxAppetiteHitTime. More... | |
int | GetFlightNumber () |
Returns the total daily number of flights. More... | |
int | GetFlightDistance () |
Returns the total daily distance flown. More... | |
double | GetDailyEnergyBudget () |
Returns the daily energy budget. More... | |
double | GetDailyEnergyExpenditure () |
Returns the daily energy expenditure. More... | |
int | GetForagingTime (int a_EndForagingTime, double a_RoostLeaveTime) |
Returns the time spent foraging. More... | |
double | GetGooseMinForageRate (GooseSpecies a_species) |
Returns the minimum forage rate for the species. More... | |
double | GetMaxForageRate (double a_grain, double a_maize, double a_grass, double a_interferenceComp, bool a_iscereal, TTypesOfVegetation a_veg, bool a_stubble, TTypesOfVegetation a_prevcrop) |
Returns the max forage rate of the three different types of forage The max rate is adjusted according to feeding time in the time budget, according to the interference competition value and to the current snow depth in the landscape. More... | |
double | GetMaxIntakeRate (double a_grain, double a_maize, double a_grass) |
Returns the max intake rate of the three different types of intake. More... | |
void | SetSex (bool a_sex) |
Sets the sex. More... | |
double | GetTotalWeight () |
Returns the weight of the bird. More... | |
double | GetRoostLeaveTime () |
Returns the time when the goose leaves the roost. More... | |
void | SetFlightCost (double a_cost) |
Set the flight cost per m per g. More... | |
double | GetFlightCost () |
Get the flight costs per m per g. More... | |
void | Set_mingooseforagerate (double a_cost, GooseSpecies a_species) |
Set the mimimum tolerated forage rate for all geese. More... | |
void | Set_Indivmingooseforagerate (double a_cost) |
Set the mimimum tolerated forage rate for the individual goose. More... | |
void | Set_GooseLeavingThreshold (double a_threshold) |
Set the body condition threshold for leaving for all geese. More... | |
void | Set_GooseMaxAppetiteScaler (double a_cost) |
Set the goose appetite scale used to calculate max intake for all geese. More... | |
void | Set_GooseMaxEnergyReserveProportion (double a_prop) |
Set the maximum energy reserve proportion allowed for all geese. More... | |
void | Set_GooseKJtoFatConversion (double a_cost) |
Set the kJ to fat conversion constant for all geese. More... | |
void | Set_GooseFattoKJConversion (double a_cost) |
Set the fat to kJ conversion constant for all geese. More... | |
void | Set_GooseMinForageOpenness (double a_cost) |
Set the min forage openess for all geese. More... | |
void | Set_GooseForageDist (double sp1, double sp2, double sp3) |
Set the max forage distance from roost for all geese. More... | |
void | Set_GooseFieldForageDist (double sp1, double sp2, double sp3) |
Set the max forage distance from a field for all geese. More... | |
void | Set_GooseFollowingLikelyhood (int a_likelyhood, GooseSpeciesType a_speciestype) |
Set the followinglikelyhood. More... | |
void | Set_GooseLeavingRoost (bool a_leaving) |
Set the flag to indicate if we are coming from the roost. More... | |
void | On_MoveTo (int a_x, int a_y) |
The goose is moved to the location specified by a_x, a_y - caused by group decision. More... | |
virtual void | KillThis () |
The bird is dead of some external cause. More... | |
void | On_Bang (int a_polyid) |
The goose is scared by a bang at location. More... | |
void | On_Bang (int a_polyid, double a_scare) |
The goose is scared by a bang at location. More... | |
void | On_Migrate (TTypeOfLeaveReason a_leavereason) |
The goose is told to leave the simulation area (poss due to bad weather) More... | |
double | AdjustIntakeRateToSnowDepth (double a_intakerate) |
When there is snow, the intake rate is decreased by 10 % per cm of snow. More... | |
![]() | |
unsigned | SupplyFarmOwnerRef () |
AnimalPosition | SupplyPosition () |
APoint | SupplyPoint () |
int | SupplyPolygonRef () |
int | Supply_m_Location_x () |
int | Supply_m_Location_y () |
virtual void | CopyMyself () |
void | SetX (int a_x) |
void | SetY (int a_y) |
TAnimal (int x, int y, Landscape *L) | |
virtual void | ReinitialiseObject (int x, int y, Landscape *L) |
Used to re-use an object - must be implemented in descendent classes. More... | |
virtual int | WhatState () |
virtual void | Dying () |
void | CheckManagement (void) |
void | CheckManagementXY (int x, int y) |
virtual bool | OnFarmEvent (FarmToDo) |
![]() | |
int | GetCurrentStateNo () |
Returns the current state number. More... | |
void | SetCurrentStateNo (int a_num) |
Sets the current state number. More... | |
bool | GetStepDone () |
Returns the step done indicator flag. More... | |
void | SetStepDone (bool a_bool) |
Sets the step done indicator flag. More... | |
virtual void | ReinitialiseObject () |
Used to re-use an object - must be implemented in descendent classes. More... | |
TALMaSSObject () | |
The constructor for TALMaSSObject. More... | |
virtual | ~TALMaSSObject () |
The destructor for TALMaSSObject. More... | |
void | OnArrayBoundsError () |
Used for debugging only, tests basic object properties. More... | |
Protected Member Functions | |
TTypeOfGoose_BaseState | st_ToRoost () |
Return to roost and assess whether to forage again that day. More... | |
virtual void | ChangeRoost () |
Find the closest roost. More... | |
virtual APoint | ChooseHopLoc () |
Pick a hop location point within a_dist meters - must be overridden by descendent classes. More... | |
![]() | |
TTypeOfGoose_BaseState | st_ChooseForageLocation (void) |
Selects a forage location based on past memory, or initiates an exploration. More... | |
void | FlyTo (int a_x, int a_y) |
The goose flys to the location specified by a_x, a_y. More... | |
void | FlyTo (APoint a_pt) |
The goose flys to the location specified by a_pt. More... | |
![]() | |
void | CorrectWrapRound () |
Corrects wrap around co-ordinate problems. More... | |
Additional Inherited Members | |
![]() | |
TTypeOfGoose_BaseState | CurrentGState |
Variable to record current behavioural state. More... | |
Goose_Population_Manager * | m_OurPopulationManager |
This is a time saving pointer to the correct population manager object. More... | |
bool | m_sex |
Sex of bird, true = male false = female. More... | |
GooseSpecies | m_myspecies |
Holds goose species. More... | |
GooseSpeciesType | m_myGooseSpeciesType |
Holds the goose species type. More... | |
APoint | m_MyRoost |
The current roost location. More... | |
int | m_groupsize |
The size of the group this bird represents. More... | |
double | m_weight |
The weight of the bird in gram excluding fat reserve. More... | |
double | m_weightTotal |
The weight of the bird in g including fat reserve. More... | |
int | m_forageLocCount |
The number of forage locations visited today. More... | |
double | m_BMR |
The daily BMR. More... | |
double | m_DEB |
The daily energy budget excluding flying (kJ) More... | |
double | m_DailyMaxAppetite |
The daily max kJ possible to get as intake. More... | |
int | m_DailyMaxAppetiteHitTime |
The time of day when m_DailyMaxAppetite was hit. More... | |
double | m_energyToday |
The bird's daily energy account (kJ) More... | |
TMaxIntakeSource | m_MaxIntakeSource |
Holds information about the food source which gave max intake rate. More... | |
double | m_LeaveRoostTime |
Controls the time when the goose will leave the roost. More... | |
bool | m_LeavingRoost |
Flag to indicate that we are coming from the roost. Used to control code for "following". More... | |
double | m_energyReserve |
The bird's energy reserves in grams. More... | |
double | m_Indivmingooseforagerate |
The minimum tolerable forage rate in kJ/minute for the individual. More... | |
double | m_BodyCondition [5] |
A variable describing current body condition over the past 5 days. More... | |
double | m_TheBodyCondition |
A variable describing current body condition averaged over 5 days. More... | |
unsigned | m_BodyConditionCounter |
A counter for the daily body condition. More... | |
int | m_myForageIndex |
Temporary storage for a forage location index - this is a speed optimisation. More... | |
int | m_myMemPolyID |
Temporary storage for a memory location polygon id. More... | |
GooseMemoryMap * | m_MyMemory |
The Goose Memory. More... | |
int | m_FlightNumber |
Counter for the number of flights per day. More... | |
int | m_FlightDistance |
Storage for the total distance flown per day. More... | |
![]() | |
int | m_Location_x |
int | m_Location_y |
Landscape * | m_OurLandscape |
![]() | |
int | m_CurrentStateNo |
The basic state number for all objects - '-1' indicates death. More... | |
bool | m_StepDone |
Indicates whether the iterative step code is done for this timestep. More... | |
![]() | |
static double | m_SnowDepth = 0.0 |
The current snow depth. Held here for speed optimization. More... | |
static double | m_flightcost = -1 |
The cost of flight per g per m in kJ. More... | |
static double | m_mingooseforagerate [gs_foobar] = { -1, -1, -1 } |
The minimum tolerable forage rate in kJ/minute for the species. More... | |
static double | m_GooseForageDist [gs_foobar] = { -1, -1, -1 } |
The maximum distance travelled from roost to forage sites for each species of goose (m) More... | |
static double | m_GooseForageDistX2 [gs_foobar] = { -1, -1, -1 } |
Double the maximum distance travelled from roost to forage sites for each species of goose (m) - this is a speed optimisation. More... | |
static double | m_GooseFieldForageDist [gs_foobar] = { -1, -1, -1 } |
The maximum distance travelled from roost to forage sites for each species of goose (m) More... | |
static double | m_GooseFieldForageDistX2 [gs_foobar] = { -1, -1, -1 } |
Double the maximum distance travelled from roost to forage sites for each species of goose (m) - this is a speed optimisation. More... | |
static double | m_GooseLeavingThreshold = -1 |
The trigger for leaving as a 5 day average of body condition. More... | |
static double | m_GooseMaxAppetiteScaler = -1 |
Scaler to determine the max kJ possible to eat per day based on non-energy reserve weight. More... | |
static double | m_GooseMaxEnergyReserveProportion = -1 |
Max proportion of weight that can be energy reserve. More... | |
static double | m_GooseKJtoFatConversion = -1 |
Conversion rate kJ to fat. More... | |
static double | m_GooseFattoKJConversion = -1 |
Conversion rate fat to kJ. More... | |
static double | m_GooseMinForageOpenness = -1 |
The minimum openness value a goose will tolerate for forage. More... | |
static int | m_followinglikelyhood [(int) gst_foobar] = { -1, -1, -1 , -1, -1, -1 } |
An attribute used to determine the chance of following or exploring when foraging. More... | |
A class to describe the Greylag base.
Goose_Greylag_Base::Goose_Greylag_Base | ( | Landscape * | p_L, |
Goose_Population_Manager * | p_NPM, | ||
double | a_weight, | ||
bool | a_sex, | ||
APoint | a_roost | ||
) |
Goose_Greylag_Base constructor.
References Init().
|
virtual |
Goose_Greylag_Base destructor.
|
inlineprotectedvirtual |
Find the closest roost.
Reimplemented from Goose_Base.
References Goose_Population_Manager::FindClosestRoost(), TAnimal::m_Location_x, TAnimal::m_Location_y, and Goose_Base::m_OurPopulationManager.
Referenced by st_ToRoost().
|
protectedvirtual |
Pick a hop location point within a_dist meters - must be overridden by descendent classes.
Chooses a location to hop to within greylag foraging distance. The foraging distance is different depending on where this method is called from. The point is returned after ensuring that the co-ordinates are valid.
Then automatically calls EvaluateForageToHopLoc to fill in the information between here and the hop location.
Reimplemented from Goose_Base.
References Landscape::CorrectCoordsPointNoWrap(), Goose_Base::EvaluateForageToHopLoc(), g_rand_uni, Goose_Base::m_GooseForageDist, Goose_Base::m_GooseForageDistX2, Goose_Base::m_MyRoost, TAnimal::m_OurLandscape, APoint::m_x, and APoint::m_y.
void Goose_Greylag_Base::Init | ( | Goose_Population_Manager * | p_NPM, |
double | a_weight, | ||
bool | a_sex, | ||
APoint | a_roost | ||
) |
Intitialise object.
Here we deal with intialisation that is common to all greylags but different from other geese species Calculates the maximum daily intake possible
References cfg_goose_daytime_BMR_multiplier, cfg_goose_nighttime_BMR_multiplier, Goose_Population_Manager::GetThermalCosts(), Goose_Base::Init(), Goose_Base::m_BMR, Goose_Base::m_DailyMaxAppetite, Goose_Base::m_DEB, Goose_Base::m_GooseMaxAppetiteScaler, Goose_Base::m_myspecies, TAnimal::m_OurLandscape, Goose_Base::m_OurPopulationManager, Landscape::SupplyDaylightProp(), Landscape::SupplyNightProp(), and CfgFloat::value().
Referenced by Goose_Greylag_Base(), Goose_Greylag_NonBreeder::Init(), Goose_Greylag_FamilyGroup::Init(), and ReInit().
void Goose_Greylag_Base::ReInit | ( | Landscape * | p_L, |
Goose_Population_Manager * | p_NPM, | ||
double | a_weight, | ||
bool | a_sex, | ||
APoint | a_roost | ||
) |
ReInit for object pool.
References Init(), and Goose_Base::ReInit().
Referenced by Goose_Greylag_NonBreeder::ReInit(), and Goose_Greylag_FamilyGroup::ReInit().
|
protectedvirtual |
Return to roost and assess whether to forage again that day.
If we have arrived in this method while at a forage location then the correct number of geese need to be removed from that location.
There may be multiple roosts possible, and the chance that we change roost if there is a nearer one is given by cfg_goose_roostchangechance This is first tested, if the test is passed then the goose will move to the nearest roost.
Reimplemented from Goose_Base.
References cfg_goose_roostchangechance, ChangeRoost(), Goose_Base::FlyTo(), g_rand_uni, Goose_Base::m_groupsize, Goose_Base::m_myForageIndex, Goose_Base::m_myGooseSpeciesType, Goose_Base::m_MyRoost, Goose_Base::m_OurPopulationManager, APoint::m_x, APoint::m_y, Goose_Population_Manager::RemoveGeeseFromForageLocation(), togs_Roost, and CfgFloat::value().
Referenced by Goose_Greylag_FamilyGroup::Step(), and Goose_Greylag_NonBreeder::Step().